home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 2003 May (DVD) / Macworld Resource DVD May 2003.toast / Data / Software / Bonus / Programming / revolutionosx.sit / Revolution 1.1.1 / External SDK / XCmdFunc.c < prev    next >
Encoding:
C/C++ Source or Header  |  2001-12-21  |  6.9 KB  |  330 lines  |  [????/????]

  1. /********************************************/
  2. /*    Copyright 1997 MetaCard Corporation   */
  3. /*    All Rights Reserved                   */
  4. /********************************************/
  5. /*
  6.   XCMD functions
  7. */
  8.  
  9. /* Some Unixes don't have strdup() */
  10. #ifdef __STDC__
  11. char *istrdup(const char *sptr)
  12. #else
  13. char *istrdup(sptr)
  14.      char *sptr;
  15. #endif
  16. {
  17.   char *dptr;
  18.   dptr = malloc(strlen(sptr) + 1);
  19.   strcpy(dptr, sptr);
  20.   return dptr;
  21. }
  22.  
  23. #ifdef __STDC__
  24. void SendCardMessage(const char *message, int *retval)
  25. #else
  26. void SendCardMessage(message, retval)
  27.      char *message;
  28.      int *retval;
  29. #endif
  30. {
  31.   char *rptr = callback(MC_CARD_MESSAGE, message, NULL, NULL, retval);
  32.   free(rptr);
  33. }
  34.  
  35. #ifdef __STDC__
  36. void SendMCMessage(const char *message, int *retval)
  37. #else
  38. void SendMCMessage(message, retval)
  39.      char *message;
  40.      int *retval;
  41. #endif
  42. {
  43.   char *rptr = callback(MC_MC_MESSAGE, message, NULL, NULL, retval);
  44.   free(rptr);
  45. }
  46.  
  47. #ifdef __STDC__
  48. char *EvalExpr(const char *expression, int *retval)
  49. #else
  50. char *EvalExpr(expression, retval)
  51.      char *expression;
  52.      int *retval;
  53. #endif
  54. {
  55.   return callback(MC_EVAL_EXP, expression, NULL, NULL, retval);
  56. }
  57.  
  58. #ifdef __STDC__
  59. char *GetGlobal(const char *name, int *retval)
  60. #else
  61. char *GetGlobal(name, retval)
  62.      char *name;
  63.      int *retval;
  64. #endif
  65. {
  66.   return callback(MC_GET_GLOBAL, name, NULL, NULL, retval);
  67. }
  68.  
  69. #ifdef __STDC__
  70. void SetGlobal(const char *name, const char *value, int *retval)
  71. #else
  72. void SetGlobal(name, value, retval)
  73.      char *name;
  74.      char *value;
  75.      int *retval;
  76. #endif
  77. {
  78.   char *rptr = callback(MC_SET_GLOBAL, name, value, NULL, retval);
  79.   free(rptr);
  80. }
  81.  
  82. #ifdef __STDC__
  83. char *GetFieldByName(const char *group, const char *name, int *retval)
  84. #else
  85. char *GetFieldByName(group, name, retval)
  86.      char *group;
  87.      char *name;
  88.      int *retval;
  89. #endif
  90. {
  91.   return callback(MC_GET_FIELD_BY_NAME, name, group, NULL, retval);
  92. }
  93.  
  94. #ifdef __STDC__
  95. char *GetFieldByNum(const char *group, int num, int *retval)
  96. #else
  97. char *GetFieldByNum(group, num, retval)
  98.      char *group;
  99.      int num;
  100.      int *retval;
  101. #endif
  102. {
  103.   char *rptr;
  104.   char *dptr = malloc(XINTSTRSIZE);
  105.   sprintf(dptr, "%d", num);
  106.   rptr = callback(MC_GET_FIELD_BY_NUM, dptr, group, NULL, retval);
  107.   free(dptr);
  108.   return rptr;
  109. }
  110.  
  111. #ifdef __STDC__
  112. char *GetFieldById(const char *group, unsigned long id, int *retval)
  113. #else
  114. char *GetFieldById(group, id, retval)
  115.      char *group;
  116.      unsigned long id;
  117.      int *retval;
  118. #endif
  119. {
  120.   char *rptr;
  121.   char *dptr = malloc(XINTSTRSIZE);
  122.   sprintf(dptr, "%ld", id);
  123.   rptr = callback(MC_GET_FIELD_BY_ID, dptr, group, NULL, retval);
  124.   free(dptr);
  125.   return rptr;
  126. }
  127.  
  128. #ifdef __STDC__
  129. void SetFieldByName(const char *group, const char *name,
  130.             const char *value, int *retval)
  131. #else
  132. void SetFieldByName(group, name, value, retval)
  133.      char *group;
  134.      char *name;
  135.      char *value;
  136.      int *retval;
  137. #endif
  138. {
  139.   char *rptr;
  140.   rptr = callback(MC_SET_FIELD_BY_NAME, name, group, value, retval);
  141.   free(rptr);
  142. }
  143.  
  144. #ifdef __STDC__
  145. void SetFieldByNum(const char *group, int num,
  146.            const char *value, int *retval)
  147. #else
  148. void SetFieldByNum(group, num, value, retval)
  149.      char *group;
  150.      int num;
  151.      char *value;
  152.      int *retval;
  153. #endif
  154. {
  155.   char *rptr;
  156.   char *dptr = malloc(XINTSTRSIZE);
  157.   sprintf(dptr, "%d", num);
  158.   rptr = callback(MC_SET_FIELD_BY_NUM, dptr, group, value, retval);
  159.   free(dptr);
  160.   free(rptr);
  161. }
  162.  
  163. #ifdef __STDC__
  164. void SetFieldById(const char *group, unsigned long id,
  165.           const char *value, int *retval)
  166. #else
  167. void SetFieldById(group, id, value, retval)
  168.      char *group;
  169.      unsigned long id;
  170.      char *value;
  171.      int *retval;
  172. #endif
  173. {
  174.   char *rptr;
  175.   char *dptr = malloc(XINTSTRSIZE);
  176.   sprintf(dptr, "%ld", id);
  177.   rptr = callback(MC_SET_FIELD_BY_ID, dptr, group, value, retval);
  178.   free(dptr);
  179.   free(rptr);
  180. }
  181.  
  182. #ifdef __STDC__
  183. void ShowImageByName(const char *group, const char *name, int *retval)
  184. #else
  185. void ShowImageByName(group, name, retval)
  186.      char *group;
  187.      char *name;
  188.      int *retval;
  189. #endif
  190. {
  191.   char *rptr = callback(MC_SHOW_IMAGE_BY_NAME, name, group, NULL, retval);
  192.   free(rptr);
  193. }
  194.  
  195. #ifdef __STDC__
  196. void ShowImageByNum(const char *group, int num, int *retval)
  197. #else
  198. void ShowImageByNum(group, num, retval)
  199.      char *group;
  200.      int num;
  201.      int *retval;
  202. #endif
  203. {
  204.   char *rptr;
  205.   char *dptr = malloc(XINTSTRSIZE);
  206.   sprintf(dptr, "%d", num);
  207.   rptr = callback(MC_SHOW_IMAGE_BY_NUM, dptr, group, NULL, retval);
  208.   free(dptr);
  209.   free(rptr);
  210. }
  211.  
  212. #ifdef __STDC__
  213. void ShowImageById(const char *group, unsigned long id, int *retval)
  214. #else
  215. void ShowImageById(group, id, retval)
  216.      char *group;
  217.      unsigned long id;
  218.      int *retval;
  219. #endif
  220. {
  221.   char *rptr;
  222.   char *dptr = malloc(XINTSTRSIZE);
  223.   sprintf(dptr, "%ld", id);
  224.   rptr = callback(MC_SHOW_IMAGE_BY_ID, dptr, group, NULL, retval);
  225.   free(dptr);
  226.   free(rptr);
  227. }
  228.  
  229. #ifdef __STDC__
  230. char *GetVariable(const char *name, int *retval)
  231. #else
  232. char *GetVariable(name, retval)
  233.      char *name;
  234.      int *retval;
  235. #endif
  236. {
  237.   return callback(MC_GET_VARIABLE, name, NULL, NULL, retval);
  238. }
  239.  
  240. #ifdef __STDC__
  241. void SetVariable(const char *name, const char *value, int *retval)
  242. #else
  243. void SetVariable(name, value, retval)
  244.      char *name;
  245.      char *value;
  246.      int *retval;
  247. #endif
  248. {
  249.   char *rptr = callback(MC_SET_VARIABLE, name, value, NULL, retval);
  250.   free(rptr);
  251. }
  252.  
  253.  
  254. #ifdef __STDC__
  255. void GetVariableEx(const char *name, const char *key, MCstring *value, int *retval)
  256. #else
  257. void GetVariableEx(name,  key, value, retval)
  258.      char *name;
  259.      const char *key;
  260.      MCstring *value;
  261.      int *retval;
  262. #endif
  263. {
  264.    callback(MC_GET_VARIABLE_EX, name, key, (char *)value, retval);
  265. }
  266.  
  267. #ifdef __STDC__
  268. void SetVariableEx(const char *name,  const char *key,  const MCstring *value, int *retval)
  269. #else
  270. void SetVariableEx(name,  key, value, retval)
  271.      const char *name;
  272.      const char *key;
  273.      const MCstring *value;
  274.      int *retval;
  275. #endif
  276. {
  277.   char *rptr = callback(MC_SET_VARIABLE_EX, name, key, (char *)value, retval);
  278.   free(rptr);
  279. }
  280.  
  281. #ifdef _STDC_
  282. void GetArray(const char *name, int *nelements, MCstring *strings, char **keys, int *retval)
  283. #else
  284.      void GetArray(name,nelements,strings,keys,retval)
  285.      const char *name;
  286.      int *nelements;
  287. MCstring *strings;
  288. char **keys;
  289. int *retval;
  290. #endif
  291. {
  292.   MCarray barray;
  293.   char *dptr = malloc(XINTSTRSIZE);
  294.   if (strings == NULL || keys == NULL || *nelements == 0)
  295.     *nelements = 0;
  296.   sprintf(dptr, "%d", *nelements);
  297.   barray.nelements = *nelements;
  298.   barray.strings = strings;
  299.   barray.keys = keys;
  300.   callback(MC_GET_ARRAY,name,dptr,(char *)&barray,retval);
  301.   free(dptr);
  302.   *nelements = barray.nelements; 
  303. }
  304.  
  305. #ifdef _STDC_
  306. void SetArray(const char *name, int nelements, MCstring *strings, char **keys, int *retval)
  307. #else
  308.      void SetArray(name, nelements, strings, keys, retval)
  309.      const char *name;
  310.      int nelements;
  311.      MCstring *strings;
  312.      char **keys;
  313.      int *retval;
  314. #endif
  315. {
  316.   char *rptr;
  317.   MCarray barray;
  318.   barray.nelements = nelements;
  319.   barray.strings = strings;
  320.   barray.keys = keys;
  321.   rptr = callback(MC_SET_ARRAY,name,"",(char *)&barray,retval);
  322.   free(rptr);
  323. }
  324.  
  325.  
  326. char *GetMCStatus()
  327. {
  328.   return getstatus();
  329. }
  330.